Due to limitations of physical condition, compared with a wired link, a wireless link in a mobile communication system has a lower transmission rate and a higher bit error rate. In order to be able to effectively utilize the limited wireless channel bandwidth resources, a Robust Header Compression (ROHC) technology is introduced. A core of ROHC is using information redundancy between packets of service streams to transparently compress and decompress information in a packet header between nodes connected directly. The ROHC technology is described in the document RFC3095 of the Internet Engineering Task Force (IETF), and the IETF made modifications on the ROHC technology in February, 2007, and the modified document is RFC4815.
A Context is an extremely important concept in the ROHC, which includes a compressed context and a decompressed context. A current state information set compressed by a compressor is called as the compressed context; and a current state information set decompressed by a decompressor is called as the decompressed context. The context contains relevant information of the previous one or more packet headers in the same packet stream, such as static fields and quoted reference values used during compressing and decompressing, and so on. In addition, the context also contains other information describing the packet stream, such as a changing way of an IPID field, a changing step size of a timestamp field, a current state and mode, and a clock precision and so on.
Initialization and Refreshment (IR) message is mainly used for establishing a new context or used for refreshing static information and dynamic information of the context (the dynamic information can be not contained). The compressor and decompressor can achieve the object of establishing the context and updating all information of the context by sending and receiving the IR messages and then increase robustness of the compression and decompression, which enables the subsequent compressed packets to be decompressed correctly.
Initialization and Refresh-Dynamic part (IR-DYN) message is mainly used for establishing or refreshing dynamic information of the context. The compressor and decompressor can achieve the object of establishing or synchronizing context dynamic information by sending and receiving the IR-DYN messages. A difference between the message and the IR message is that only the dynamic information is contained, and when the dynamic information of the context is damaged, the entire context can be repaired with the message, which enables the compressed packets received subsequently to be decompressed correctly.
In a case that a feedback channel exists, the decompressor in the ROHC can send an acknowledgement (ACK) and a Not acknowledgement (NACK) or a Static-Not acknowledgement (STATIC-NACK) to the compressor. The acknowledgement means that an acknowledgement message can be sent to the compressor after the decompressor decompresses the compressed packets successfully, which enables the compressor to perform state transition faster and improves the compression efficiency; and the Not acknowledgement means that the decompressor notifies the compressor to perform a context update, which improves the robustness of the entire algorithm of ROHC.
Currently, the ROHC supports the compression and decompression of data packets of the types of UNCOMPRESSED, IP/User Datagram Protocol (UDP)/Real-time Transport Protocol (RTP), IP/UDP and IP/Encapsulating Security Payload (ESP), and the corresponding Profile types are Profile0, Profile1, Profile2 and Profile3 respectively. There is only one context with regard to the Profile0, there is one or more contexts with regard to the other Profile types, and each context is identified through a Context Identifier (CID).
A context of the ROHC Profile0 type corresponds to all uncompressed data packets, and each context of the other Profile types corresponds to one packet stream. A packet stream is determined by all key fields (i.e. a STATIC-DEF field) in the packet stream. For example, with regard to an IPv4/UDP/RTP packet stream, it is jointly determined by a source address and a destination address of the part of IPv4, a source port number and a destination port number of the part of UDP, and a Synchronization Source Identifier (SSI) field of the part of RTP.
After receiving an original data packet, the compressor of ROHC is required to firstly judge a Profile type to which the packet belongs and then search for a context to which the packet belongs in a context linked list of the Profile type corresponding to the packet, if no context is found, it establishes a new context and adds the new context into the linked list. If a corresponding context is found, all fields in the current packet and corresponding fields in the context are compared and encoded, a type of the compressed packet required to be sent is decided, and the compressed packet is encapsulated according to an expected packet format and sent.
It can be seen from the above that the IR message and IR-DYN message play an important part in the whole process of compression and decompression. Since the ROHC itself is applied in the wireless link to improve the wireless link bandwidth utilization rate, but the bit error rate of the wireless link is comparatively high, bit errors may occur in the IR message and IR-DYN message during a transmission process of the wireless link, and a Cyclic Redundancy Check (CRC) of IR message and IR-DYN message with bit errors will be failed. If the CRC of the IR message is failed, a decompressing party needs to send the STATIC-NACK to a compressing party under a No Context (NC) state of Bidirectional Optimistic mode (O mode) or Bidirectional Reliable mode (R mode), it requests the compressing party to continue to send the IR messages, and performs refreshing on the static information and dynamic information of the context in time; if the CRC of the IR-DYN message is failed, the decompressing party sends the STATIC-NACK to the compressing party under the NC state of the O/R modes, it requests the compressing party to send the IR messages to refresh the static information and dynamic information of the context in time. If the CRC of an IR/IR-DYN packet is failed under other states of the decompressor, processing is performed according to a CRC failure flow ruled in the protocol, if K1 checks in the received N1 update packets are failed under a Full Context (FC) state, it is required to send the NACK to the compressing party, and if K2 checks in the received N2 update packets are failed under a Static Context (SC) state, it is required to send the STATIC-NACK to the compressing party, which is used to perform the request updating on corresponding dynamic and static contexts.
When feedbacks are sent, it is required to carry a Context Identifier (CID) in a feedback packet and notify the compressing party of a compressed context required to be updated. Since bit errors may occur in the IR/IR-DYN packet, a CID value parsed out by the decompressing party may well be incorrect, and if this CID is written into the feedback packet, it will be caused that a group of compressor and decompressor originally in efficient compression and decompression perform unnecessary updating, which reduces the compression efficiency and wastes the bandwidth of wireless link. Moreover, if the packet format is mistakenly coded by the wireless link, the following series processing is redundant, which wastes the system resources seriously.